﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;

namespace Doan_ver1
{
    public partial class ChuyenTien : System.Web.UI.Page
    {
        public string connection()
        {
            return Provider.connectionString();
        }
       // static String connectionString = "Data Source=RICARDOQUI-PC;Initial Catalog=NGANHANG;Integrated Security=SSPI";

      
        protected void Page_Load(object sender, EventArgs e)
        {
           
           
        }

        protected void Menu1_MenuItemClick(object sender, MenuEventArgs e)
        {

        }
        public int kiemTraTheGui()
        {
            SQLNganHangDataContext data = new SQLNganHangDataContext(connection());
            System.Net.ServicePointManager.Expect100Continue = false;
            EMVService.EMVServices proxy = new EMVService.EMVServices();
            proxy.CookieContainer = new CookieContainer();
            The the = data.Thes.Where(c => c.MaThe == tbIDTheGui.Text.Trim()).FirstOrDefault();
            if (the == null)
                return -2;
            string sID = proxy.Authenticate("NamABank", "b94DDu^xcC");


            List<NganHangLienMinh> lstNganHangLienMinh = data.NganHangLienMinhs.ToList();

            int temp = proxy.CardValid2(sID, the.MaThe, the.MaLoaiThe, the.MaSecure, the.TenChuThe);
            return temp;
        }
        public int kiemTraTheNhan()
        {
            SQLNganHangDataContext data = new SQLNganHangDataContext(connection());
            System.Net.ServicePointManager.Expect100Continue = false;
            EMVService.EMVServices proxy = new EMVService.EMVServices();
            proxy.CookieContainer = new CookieContainer();

            List<NganHangLienMinh> lst = data.NganHangLienMinhs.ToList();
            string tenBank = proxy.GetBankCommercialNameOfCreditCard(tbIDTheNhan.Text.Trim());
            if (tenBank == "NAB")
                return 0;// cung ngan hang
            foreach (NganHangLienMinh item in lst)
            {
                if (item.MaNHLienMinh == tenBank)
                    return 1;
            }
            if (tenBank == "CardNotExist")
                return -1;
            return -3;
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            if (kiemTraTheGui() != 0)
                Alert.Show("Thẻ gửi bậy");
            else if (kiemTraTheNhan() == -1 || kiemTraTheNhan() == -3)
                Alert.Show("Thẻ nhận bậy");

            else if (kiemTraTheGui() == 0 && (kiemTraTheNhan() == 0 || kiemTraTheNhan() == 1))
                Alert.Show("ok");

        }

        

        protected void Button2_Click1(object sender, EventArgs e)
        {
              System.Net.ServicePointManager.Expect100Continue = false;
            EMVService.EMVServices proxy = new EMVService.EMVServices();
            proxy.CookieContainer = new CookieContainer();

          
            ServiceNamA.Service1 proxyNAB = new ServiceNamA.Service1();
            proxyNAB.CookieContainer = new CookieContainer();

            ServiceMSB.ServiceMaritimeBank proxyMSB = new ServiceMSB.ServiceMaritimeBank();
            proxyMSB.CookieContainer = new CookieContainer();

            ServiceHDB.HDBankWS proxyHDB = new ServiceHDB.HDBankWS();
            proxyHDB.CookieContainer = new CookieContainer();

            string nameBankIDNhan = proxy.GetBankCommercialNameOfCreditCard(tbIDTheNhan.Text.Trim());
            switch (nameBankIDNhan)
            {
                case "NAB":
                    string sid = proxyNAB.Login("adminNamA", "admin");
                    int kq = proxyNAB.Tranfer(sid, tbIDTheGui.Text.Trim(), tbIDTheNhan.Text.Trim(), int.Parse(tbAmount.Text));
                    if (kq == int.Parse(tbAmount.Text))
                        Label1.Text = "Bạn đã chuyển tiền thành công. Số tiền giao dịch:" + kq.ToString();
                    else
                        Label1.Text = "Chuyển tiền thất bại";
                    break;
                case "MSB":
                    string sidnamA = proxyNAB.Login("adminNamA", "admin");
                    // trừ tiền trong tài khoản gửi
                    int kq1 = proxyNAB.Tranfer(sidnamA, tbIDTheGui.Text, tbIDTheNhan.Text, int.Parse(tbAmount.Text));
                    // cộng tiền trong tài khoản nhận
                    string sidMSB = proxyMSB.Login("namabank ", "123456");
                    int kq2 = proxyMSB.Withdraw(sidMSB, tbIDTheNhan.Text, tbIDTheGui.Text, int.Parse(tbAmount.Text));
                    if (kq1 > int.Parse(tbAmount.Text) && kq2 > int.Parse(tbAmount.Text))
                        Label1.Text = "Bạn đã chuyển tiền thành công. Số tiền giao dịch:" + kq1.ToString();
                    else
                        Label1.Text = "Chuyển tiền thất bại";
                    break;
                case "HDB":
                    // trừ tiền trong tài khoản gửi
                    string sidnamA1 = proxyNAB.Login("adminNamA", "admin");
                    int kq3 = proxyNAB.Tranfer(sidnamA1, tbIDTheGui.Text, tbIDTheNhan.Text, int.Parse(tbAmount.Text));
                    // cộng tiền trong tài khoản nhận
                    string sidHDB = proxyHDB.Login("nh_nab", "nh_nab123");
                    int kq4 = proxyHDB.Withdraw(sidHDB, tbIDTheNhan.Text, tbIDTheGui.Text, int.Parse(tbAmount.Text));
                    if (kq3 > int.Parse(tbAmount.Text) && kq4 > int.Parse(tbAmount.Text))
                        Label1.Text = "Bạn đã chuyển tiền thành công. Số tiền giao dịch:" + kq3.ToString();
                    else
                        Label1.Text = "Chuyển tiền thất bại";
                    break;
            }
        }
    }
}